package negocio;

import java.awt.Rectangle;
import java.util.ArrayList;
import java.util.Random;
import negocio.Animado.Natureza;

/*
 * Classe com o repositório dos elementos e lógica do jogo
 */
public class Jogo {

    private Jogador jogador;
    private int status; // 0-pausado, 1-andamento, 2-terminado
    private int largura, altura;
    private Random valorRandom = new Random();
    private int movInimigo = 0;
    public ArrayList<Animado> listaDeAnimados;

    public Jogo(int largura, int altura) {
        this.largura = largura;
        this.altura = altura;
        this.status = 0;
    }
    
    public ArrayList<Animado> getAnimados(){
        return this.listaDeAnimados;
    }
    /*
     * Inicia uma nova partida com os personagens indicados
     */
    public void novaRodada() {        
        listaDeAnimados.add(new Personagem("imagens/bala.png",this,0,0,Natureza.CAI));
        listaDeAnimados.add(new Personagem("imagens/ifrs-rg.png",this,0,300, Natureza.CHAO));
        status = 1;
            
    }

    /*
     * É chamado várias vezes durante a execução do jogo para realizar cada
     * fração de movimento, detectar colizões e executar a lógica do jogo
     */
    public void realizaJogada() {
        
        for (int i = 0; i < this.listaDeAnimados.size(); i++){
            this.listaDeAnimados.get(i).atualiza();
        }
        
        /*
         * if (jogador == null || status != 1) { return; }
         */

        //verificaColisoes();
    }
/*
     * Detecta colisões entre o jogador e inimigo e chama a lógica
     * correspondente
     */
    private void verificaColisoes() {
        /*
         * if (rJ1.intersects(rJ2)) { logicaDoJogo();
        }
         */
    }

    /*
     * Na ocorrência de colisões: pontua o jogador, muda a posição do inimigo e
     * detecta o final do jogo
     */
    
    /*public void logicaDoJogo() {
        jogador.pontua(+1);


        if (jogador.getPontuacao() >= 10) {
            status = 2;
        }
    }*/

    public Jogador getJogador() {
        return jogador;
    }

    public int getStatus() {
        return status;
    }

    public int getAltura() {
        return altura;
    }

    public int getLargura() {
        return largura;
    }

}
